package cn.tt.tuantuanerp.tuantuanerp.orderservice;



import cn.tt.tuantuanerp.tuantuanerp.comment.pojo.dto.OrderAddNewDTO;
import cn.tt.tuantuanerp.tuantuanerp.comment.pojo.vo.OrderDetailsVO;
import cn.tt.tuantuanerp.tuantuanerp.comment.pojo.vo.OrderListItemVO;
import cn.tt.tuantuanerp.tuantuanerp.comment.security.LoginPrincipal;
import cn.tt.tuantuanerp.tuantuanerp.comment.web.JsonPage;
import org.springframework.transaction.annotation.Transactional;


import java.util.List;

/**
 * 订单业务接口
 * @author Wangyujie
 */
@Transactional
public interface IOrderService {

    /**
     * 添加新订单的业务接口
     * @param orderAddNewDTO
     */
    void addNew(OrderAddNewDTO orderAddNewDTO, LoginPrincipal loginPrincipal);



    /**
     * 业务员查询订单(查询业务自己的订单)
     * @param loginPrincipal
     * @return
     */
    JsonPage<OrderListItemVO> listByCreatorId(LoginPrincipal loginPrincipal, Integer startIndex, Integer pageSize);


    /**
     * 查询具体的订单
     * @param id
     * @return
     */
    OrderDetailsVO getDeatil(String id);


    /**
     * 根据订单号模糊查询订单
     * @param id
     * @return
     */
    JsonPage<OrderListItemVO> getOrdersByOrderId(LoginPrincipal loginPrincipal, String id, Integer startIndex, Integer pageSize);


    /**
     * 根据创建人精确查询订单
     * @param id
     * @return
     */
    JsonPage<OrderListItemVO> listByCreator(LoginPrincipal loginPrincipal,Long id,Integer startIndex,Integer pageSize);

}
